Skip to main content

PHP SDK

版本记录

版本说明日期
v1.0.3支持埋点事件事件变量、用户变量可传列表类型2022-04-20
v1.0.2支持埋点事件可传eventTime参数2022-04-02
v1.0.1支持userKey字段设置2022-02-11

简介

GrowingIO提供在Server端部署的PHP SDK,从而可以方便的进行事件上报等操作。

源码托管在 growingio/growingio-php-sdk

php 版本 => 5.5


集成准备

获取SDK初始化必传参数:AccountID、DataSourceID、Host

info

AccountID:项目ID,代表一个项目
DataSourceID:数据源ID,代表一个数据源
Host:采集数据上报的服务器地址,非平台地址

AccountID、DataSourceID 需要在CDP增长平台上新建数据源,或从已创建的数据源中获取, 如不清楚或无权限请联系您的专属项目经理或技术支持

创建
查看

集成 & 安装

php sdk已经发布在Packagist, 可以通过Composer进行安装

"growingio/php-sdk": "1.0.3"
<?php
use com\growingio\GrowingIO;
//Load Composer's autoloader
require 'vendor/autoload.php';

如果没有使用Composer, 可以直接下载源代码到php配置中指定的include_path目录中, 并手动加载类文件

<?php
use com\growingio\GrowingIO;

include_once 'path/src/GrowingIO.php'; // path为对应路径

初始化配置

初始化参数
参数必选类型默认值说明
accountIDtruestring项目 ID,见数据源配置
hosttruestring数据收集服务域名,请参考运维手册或联系技术支持获取
dataSourceIdtruestring数据源 ID,见数据源配置
propsfalsearrayarray()初始化配置额外参数
初始化配置额外参数
参数必选类型默认值说明
debugfalsebooleanfalsedebug 模式, 此模式仅打印日志, 不发送数据

代码示例

$accountID = '1234567887654321';
$host = 'https://localhost.com';
$dataSourceId = '12345678';
$props = array('debug' => true);

$gio = GrowingIO::getInstance($accountID, $host, $dataSourceId, $props);

API说明

埋点事件

发送一个埋点事件。在添加发送的埋点事件代码之前,需在CDP平台事件管理界面创建埋点事件以及关联事件属性

info
  • 当需要标记用户ID类型时,请先进行规划,并在平台的数据中心,添加新的用户身份类型,再设置userkey,误设会影响数据质量。

参数说明

参数是否必填类型默认值说明
eventTimefalseint当前时间的时间戳事件发生时间(毫秒);
需要开启“自定义event_time上报”功能方可生效,请联系技术支持确认
loginUserKeyfalsestring登录用户KEY (选填,需有规划并在平台配置后再上报),传此参数时,同时需传登录用户ID
anonymousIdfalsestring访问用户ID,与登录用户ID,不能同时为空
loginUserIdfalsestring登录用户ID,与访问用户ID,不能同时为空
eventKeytruestring埋点事件标识符
propertiesfalsearrayarray()事件发生时,所伴随的维度信息;
value支持 string|double|int|数组,数组中元素支持string|double|int
代码示例
$gio->trackCustomEvent($gio->getCustomEventFactory('loginUserId', 'eventName')
->setEventTime(1648524854000)
->setLoginUserKey('loginUserKey')
->setProperties(array('attrKey1' => 'attrValue1', 'attrKey2' => 'attrValue2', 'attrKey3' => array("Volvo","BMW","Toyota")))
->create());
info

详细使用示例:埋点事件示例

登录用户属性事件

以登录用户的身份定义登录用户属性,比如年龄、性别、会员等级等,用于用户信息相关分析
在添加登录用户属性代码之前,需要在CDP平台用户管理界面中创建用户属性

info
  • 当需要标记用户ID类型时,请先进行规划,并在平台的数据中心,添加新的用户身份类型,再设置userkey,误设会影响数据质量。

参数说明

参数是否必填类型默认值说明
loginUserKeyfalsestring登录用户KEY (选填,需有规划并在平台配置后再上报),传此参数时,同时需传登录用户ID
loginUserIdfalsestring登录用户ID,与访问用户ID,不能同时为空
anonymousIdfalsestring访问用户ID,与登录用户ID,不能同时为空
propertiestruearray用户属性信息;
value支持 string|double|int|数组,数组中元素支持string|double|int

代码示例

$gio->setUserAttributesEvent($gio->getUserAttributesFactory('loginUserId')
->setLoginUserKey('loginUserKey')
->setProperties(array('gender' => 'male', 'age' => '18','education' => array('本科','硕士')))
->create());
info

详细使用示例:用户属性事件示例

维度表

上传一个维度表记录。在添加所需要上传维度表记录代码之前,需要在维度表管理界面中创建对应维度表及其属性

参数说明

参数必选类型默认值说明
itemIdtruestring维度表模型ID(记录ID)
itemKeytruestring维度表标识符
propertiesfalsearrayarray()维度表属性及值

代码示例

$gio->setItemAttributes(
'1001',
'product',
array('color' => 'red')
);

集成示例

<?php
use com\growingio\GrowingIO;

include_once 'path/src/GrowingIO.php'; // path为对应路径

// 请在您调试前,将accountID修改为您的项目AccountID
// 所有埋点事件需要提前在GrowingIO产品中进行定义
// 所有埋点事件的属性也需要提前在GrowingIO产品中进行定义
$accountID = '1234567887654321';
$host = 'https://localhost.com';
$dataSourceId = '12345678';
$props = array('debug' => true);
$gio = GrowingIO::getInstance($accountID, $host, $dataSourceId, $props);

// 采集自定义事件
$gio->trackCustomEvent($gio->getCustomEventFactory('loginUserId', 'eventName')
->setLoginUserKey('loginUserKey')
->setProperties(array('attrKey1' => 'attrValue1', 'attrKey2' => 'attrValue2'))
->create()
);

// 设置登录用户变量
$gio->setUserAttributesEvent($gio->getUserAttributesFactory('loginUserId')
->setLoginUserKey('loginUserKey')
->setProperties(array('gender' => 'male', 'age' => '18'))
->create());

// 设置物品模型
$gio->setItemAttributes(
'1001',
'product',
array('color' => 'red')
);

程序测试

请按照如下步骤进行埋点数据的开发联调。

完成埋点事件的配置

在GrowingIO【数据】>【数据管理】中创建埋点事件及事件属性/登录用户属性,如图所示。 custom data

测试程序配置

  1. 在您的PHP项目中集成增加GrowingIO PHP SDK的依赖(首次集成需要)
  2. SDK初始化配置中debug 配置为 true
  3. 在您的PHP项目中找到合适的埋点位置,调用埋点事件API/登录用户属性API上传数据
  4. 在输出的日志中查找是否包含期望事件内容

完成以上测试步骤后

  1. 修改SDK初始化时 debug 配置为 false 或不设置,并触发埋点事件
  2. 在线查询GrowingIO数据库,确认数据上传成功